بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
دریافت ارور (حل شد )Call to a member function query() on a non-object
سلام دوستان لطفا این کد رو یه نگاهی بفرمایید موقع اجرا این ارور رو میده.
Fatal error: Call to a member function query() on a non-object in C:\dev\workspace\web\mynotes\db.php on line 34
این هم کد دیتابیس
<?
class Db {
private $connection;
public function __constract($option=null){
if($option!=null){
$host=$option['host'];
$user=$option['user'];
$pass=$option['pass'];
$name=$option['name'];
} else {
global $config;
$host=$config['db']['host'];
$user=$config['db']['user'];
$pass=$config['db']['pass'];
$name=$config['db']['name'];
}
$this->connection = new mysqli($host, $user, $pass, $name);
if ($this->connection->connect_error) {
echo "Connection failed: " . $this->connection->connect_error;
exit;
}
$this->connection->query("SET NAMES 'utf8'");
}
public function first($sql) {
$records=$this->query($sql);
if($records==null){
return null;
}
return $records[0];
}
public function query($sql) {
$result = $this->connection->query($sql);
dump($result);
$records = array();
if ($result->num_rows == 0) {
return null;
}
while($row=$result->fetch_assoc()){
$records[]=$row;
}
return $records;
}
public function connection() {
return $this->connection;
}
public function close() {
$this->connection->close();
}
}
?>
برای این سوال 1 پاسخ وجود دارد.
مشاهده پاسخ صحیح
پاسخ به سوال
سجاد عباسی
9 سال پیش
+1
0
پاسخ صحیح
شما یه غلط تایپی دارید... دقت کنید کانستراکت رو اشتباه نوشتید. شما نوشتید:
public function __constract($option=null){
که غلطه و باید بنویسید:
public function __construct($option = null){
کد شما این مشکل رو داشت که کانستراکت اجرا نمیشد و شی mysqli ایجاد و داخل متغیر $connection قرار نمیگره پس null هست و این ارور رو میده. این خط رو تصحیح کنید تا ارور رفع بشه.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .